Providing a user input interface prior to initiation of an operating system

ABSTRACT

A processor-based system, including systems without keyboards, may receive user inputs prior to booting. This may done using the graphics controller to generate a window which allows the user to input information. The system firmware may then compare any user inputs, such as passwords, and may determine whether or not to actually initiate system booting.

BACKGROUND

[0001] This invention relates generally to processor-based systems and particularly to techniques for providing user inputs in those systems.

[0002] A number of processor-based systems, such as web tablets, include no keyboard. For example, many devices use a touch screen, a mouse, or pen as the input device, avoiding the need for a keyboard that takes up more space. However each of these input devices generally needs an operating system in order to receive user inputs.

[0003] In some cases, the inability to provide inputs prior to booting of the operating system may create a problem. For example, it may be desirable to require the user to enter a password before actually booting the operating system. Once the operating system is booted, the user may be more able to hack the system in order to gain access without a password. Thus it may be advantageous to require entry of a password or other identifier before booting the system.

[0004] As another example, it may be desirable for the user to provide certain information to the system, such as hardware settings, prior to actually booting the system. In other words it may be desirable to enable the input of setting information without requiring that the operating system be booted. Examples of machine setup information may be to convert the system from a universal serial bus (USB) to a PS-2 system, to provide different graphics, or to provide a different hard drive.

[0005] Of course in systems without a keyboard, there is no way to provide information prior to the time the operating system has booted. Before operating system boot or in the pre-boot phase, the input devices are incapacitated since they require a functioning operating system.

[0006] Therefore, there is a need for a way to receive inputs in processor-based systems in the pre-boot phase.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007]FIG. 1 is a front plan view of one embodiment of the present invention;

[0008]FIG. 2 is a block depiction of the embodiment shown in FIG. 1 in accordance with one embodiment of the present invention; and

[0009]FIG. 3 is a flow chart for software in accordance with one embodiment of the present invention.

DETAILED DESCRIPTION

[0010] Referring to FIG. 1, a processor-based system 10 may include a housing 66 and a display 16. In one embodiment, the display 16 may be a liquid crystal display and the processor-based system 10 may be battery powered. The system 10 may include no keyboard. Instead, the system 10 may use input devices such as a touch screen, a pen, or a mouse. Textual inputs may be entered prior to booting an operating system using an on-screen keyboard image included in a graphical user interface 68.

[0011] Examples of systems 10 include personal digital assistants, appliances such as cameras, and web tablets. These devices may be more portable and relatively lower in weight by eliminating the keyboard.

[0012] Referring to FIG. 1, when the user operates a start button 14, the graphical user interface 68 appears including a prompt to enter a password and an on-screen keyboard. This may be done before the operating system has been booted. Instead, the interface 68 may be retrieved from storage and displayed by opening a window.

[0013] When the user enters an appropriate password, as determined by boot code running in a graphics controller, booting of the operating system may be initiated in one embodiment. In other embodiments, entry of machine settings or other identifiers may be provided in the pre-boot stage.

[0014] Turning to FIG. 2, the system 10 may include a processor 42 coupled through an interface 44 to a graphics controller 22. The main memory 46 may be coupled to the interface 44 as may be a bus 18. The graphics controller 42 may receive inputs from a user input device 14 such as a mouse, a pen, or a touch screen display. Media control inputs 22 may be received by an image overlay generator 30. The image overlay generator 30 actually generates the interface 68. An interface 36 provides an interface between the generator 30 and the user interface 14.

[0015] A host bus interface 24 may be coupled through the interface 44 to the processor 42 and the main memory 46. A memory control interface 26 may couple the interface 24 to an option memory 20 such as an option read only memory (ROM). In addition, a digital signal processor (DSP) 32 and a graphic image storage 34 may be provided. The graphic image storage 34 stores an image that may be provided from the option memory 20 to generate the interface 68 and eventually displays the interface 68 on a display 16. Thus the graphic interface storage 34 may be a frame buffer or other memory that is capable of storing an image for display on the display 16. A 3-D graphics coprocessor 28 may be utilized for 3-D interpolation applications. A clock synthesizer 38 and a power management controller 40 may be provided as well.

[0016] The set up software 50 may be stored in the option memory 20, in one embodiment, for actually initiating the generation of an interface 68 during the pre-boot stage. Thus, the set up software 50 may be run from the graphics controller loaded with code from an option memory or any other software operable during the pre-boot stage.

[0017] Referring to FIG. 3, when user activity is detected, as indicated in block 52, the interface 68 is generated as indicated in block 54. The user activity may be operation of the button 14 indicating that the user wishes to initiate the system. Once the interface 68 is generated, the user inputs, such as a password, may be received through the interface 68 as indicated in block 56. The password entry may be part of the boot code stored in an option memory 20 as indicated in block 58. The entry may then be compared to a stored password necessary to gain access to the system 10 as indicated in block 60. If the graphics controller boot code determines that there is a password match in diamond 62, the boot operation may be started as indicated in block 64 in accordance with one embodiment of the present invention.

[0018] Thus, in some embodiments, even in systems without a keyboard, a graphical user interface 68 may be generated prior to booting of the system and this interface 68 may receive user inputs, for example to authenticate the user and to enable booting to occur. This may result in a more secure system than a system in which booting precedes user authentication. In other embodiments, machine settings or other identifiers may be advantageously received in the pre-boot stage before the available user input devices are operable. In some embodiments no operative hard disk or floppy drive is needed to start to use the system.

[0019] While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention. 

What is claimed is:
 1. A method comprising: detecting a user input; in response to the detection of a user input, generating a graphical user interface before the operating system has booted; receiving an input from the user through said graphical user interface; and booting the operating system.
 2. The method of claim 1 wherein detecting a user input includes detecting the operation of a push button.
 3. The method of claim 1 wherein generating a graphical user interface includes generating a graphical user interface using a graphics controller.
 4. The method of claim 3 including storing information for generating said graphical user interface on an option memory.
 5. The method of claim 1 including using boot code running on a graphics controller to generate the graphical user interface.
 6. The method of claim 1 wherein generating a graphical user interface includes generating a graphical user interface to enable the user to input a password.
 7. The method of claim 6 wherein generating a graphical user interface includes generating an on-screen keyboard.
 8. The method of claim 1 including receiving inputs from the user through the graphical user interface without a keyboard.
 9. The method of claim 1 including authenticating a user and allowing the operating system to boot if the user has been authenticated.
 10. The method of claim 9 including receiving a password entered without a keyboard using the graphical user interface.
 11. An article comprising a medium storing instructions that enables a processor-based system to: detect a user input; generate a graphical user interface before the operating system has booted; receive an input from the user through said graphical user interface; and boot the operating system.
 12. The article of claim 11 wherein said medium stores instructions that enable the processor-based system to detect the operation of a push button.
 13. The article of claim 11 wherein said medium stores instructions that enable the processor-based system to generate a graphical user interface using a graphics controller.
 14. The article of claim 13 wherein said medium stores instructions that enable the processor-based system to generate said graphical user interface on an option memory.
 15. The article of claim 11 wherein said medium stores instructions that enable the processor-based system to use the boot code running on a graphics controller to generate the graphical user interface.
 16. The article of claim 11 wherein said medium stores instructions that enable the processor-based system to generate a graphical user interface to enable the user to input a password.
 17. The article of claim 16 wherein said medium stores instructions that enable the processor-based system to generate an on-screen keyboard.
 18. The article of claim 11 wherein said medium stores instructions that enable the processor-based system to receive inputs from the user through the graphical user interface without a keyboard.
 19. The article of claim 11 wherein said medium stores instructions that enable the processor-based system to authenticate a user and allow the operating system to boot if the user has been authenticated.
 20. The article of claim 19 wherein said medium stores instructions that enable the processor-based system to receive a password entered without a keyboard using the graphical user interface.
 21. A system comprising: a processor; a storage coupled to said processor; and a graphics controller coupled to said storage to generate a graphical user interface before the operating system has booted.
 22. The system of claim 21 wherein said system does not include a keyboard.
 23. The system of claim 21 including a touch screen display.
 24. The system of claim 21 wherein said storage stores instructions that enable the processor to automatically boot the operating system when a user input is received through a graphical user interface before the operating system is booted.
 25. The system of claim 21 including an option read only memory that stores information to generate a graphical user interface for the entry of a password prior to booting of a operating system. 